The present invention relates to an input/output control system. More particularly, the present invention relates to an input/output control system suitable for an application in which accesses to an internal auxiliary storage device such as a disk unit embedded in an information processing apparatus are made by another information processing apparatus.
A general-purpose information processing system or the like normally employs a disk unit as an element of an auxiliary storage sub-system. Thus, the information processing system needs to carry out operations to input and output data from and to the disk unit.
FIG. 4 is a block diagram showing a typical configuration of an information processing system employing a disk unit based on a prior art. FIG. 5 is an explanatory diagram showing an example of a series of channel commands and FIG. 6 is an explanatory diagram showing a typical flow of commands and data between an information processing apparatus and a disc sub-system. An input/output control system based on the prior art is explained by referring to FIGS. 4 to 6. In FIG. 4, reference numerals 20 and 21 denote an information processing apparatus and an input/output (I/O) channel. Reference numeral 22 denotes a central processing unit (CPU) and reference numeral 25 denotes a disc-subsystem. Reference numerals 26 and 27 denote a disk unit and a cache respectively. Reference numeral 28 denotes a disc control unit.
The information processing system based on the prior art as shown in FIG. 4 comprises the information processing apparatus 20 and the disc-subsystem 25. The information processing apparatus 20 includes a plurality of I/O channels 21 for controlling exchanges of information between the information processing apparatus 20 and external equipment such as the disc-subsystem 25. The I/O channels 21 are connected to the disc sub-system 25 which comprises a plurality of disk units 26 each having a fixed-length format (FBA format) and the disc control unit 28 including the cache 27. The disk units 26 operate under control executed by the disc control unit 28.
The I/O channel 21 issues a necessary command to the disc control unit 28 in order to make an access to data stored in the disk unit 26. The disc control unit 28 controls the disk units 26 in accordance with the command received from the I/O channel 21. This command is prepared by an operating system (OS) executed by the CPU 22 employed in the information processing apparatus 20 as a channel command word (CCW) for controlling data and the disk units 26.
Viewing the disk units 26 controlled by the disc control unit 28 as a storage unit for storing data with a variable-length format or a CKD (Count Key Data) format provided by a CKD architecture, an I/O channel 21 issues a request to input or output data with a CKD format to the disc control unit 28. The disc control unit 28 carries out command emulation including conversion of the CKD format into an FBA format.
It should be noted that a method to emulate a disk unit with the CKD format by using a disk unit with the FBA format is disclosed for example in Japanese Patent Laid-open No. Hei 6-150557.
The following description explains typical CCW commands issued by the information processing apparatus 20 to the disc sub-system 25 to exchange data with the CKD format as well as a flow of data and the CCW commands.
Normally, the CPU 22 issues a series of CCWs like ones shown in FIG. 5. The series of commands shown in FIG. 5 includes a SEEK command 30 for selecting a track by specifying a cylinder number and a head number. The series of commands also includes a SET SECTOR command 31 for positioning the head on a target sector indicated by a sector number specified in the command. Every track of a disk unit 26 is logically divided into sectors each having shape resembling a flap and an equal space.
The series of commands also includes a SEARCH ID command 32 for positioning the head on a target record. The target record can be confirmed by comparison of a record ID specified in the SEARCH ID command 32 with the record ID of a count read out from the disk unit 26. The series of commands also includes a TIC command 33. The TIC command 33 is a command for confirming that the target record has been found by the SEARCH ID command 32. The SEARCH ID command 32 and the TIC command 33 are executed repeatedly till the record desired by the SEARCH ID command 32 is found. The series of commands also includes a READ/WRITE command 34 for reading out or writing data from or into a record found by the series of preceding commands.
The following is a description of a flow of CCW commands output by the information processing apparatus 20 to the disc sub-system 25 following activation of an operation of the I/O function by the series of CCW commands prepared by the OS running on the information processing apparatus 20 with reference to FIG. 6.
The OS executed by the CPU 22 employed in the information processing apparatus 20 prepares the series of CCW commands for controlling data and a disk unit and stores the CCW commands in a main storage device. Then, the OS requests an I/O channel 21 to activate an operation of the I/O function for outputting the series of CCW commands to a disk unit 26. The operation of the disk unit 26 is then controlled by the disc control unit 28 in accordance with the series of the CCW commands. In this way, the CCW commands are sequentially transmitted by the CPU 22 to the disc control unit 28 by way of the I/O channel 21. To put it in detail, first of all, the I/O channel 21 reads out the SEEK command 30 from the main storage device and transmits the command to the disc control unit 28. As described earlier, the SEEK command 30 is placed at the head of the series of CCW commands stored in the main storage device. The I/O channel 21 then waits for an emulation of the SEEK command 30 to be completed by the disc control unit 28. The emulation includes a conversion of the SEEK command 30 from a CKD format into an FBA format. As the emulation is finished, the disc control unit 28 informs the I/O channel 21 of the completion.
Notified by the disc control unit 28 of the completion of the emulation, the I/O channel 21 transmits the next SET SECTOR command 31 to the disc control unit 28 on accordance with the same procedure as the preceding SEEK command 30. As described earlier, the SET SECTOR command 31 is a second command in the series of CCW commands. The I/O channel 21 then waits for the disc control unit 28 to transmit a notice reporting completion of processing of the SET SECTOR command 31. Receiving the notice, the I/O channel 21 repeats the same processing to transmit the SEARCH ID command 32 to the disc control unit 28 and waits for a notice of completion. The disc control unit 28 reports a notice of completion along with a result indicating a found record to the I/O channel 21.
Receiving the notice of completion from the disc control unit 28, the I/O channel 21 fetches the TIC command 33 from the main storage device. The TIC command 33 is executed by the I/O channel 21 to form a judgment as to whether or not the found record is a record desired by the SEARCH ID command 32. If the outcome of the judgment indicates that the found record is not the desired record, the I/O channel 21 retransmits the SEARCH ID command 32 to the disc control unit 28. This processing is carried out repeatedly till the found record matches the desired record. As the found record in the notice of completion matches the desired record specified in the SEARCH ID command 32, the I/O channel 21 fetches the READ/WRITE command 34 following the TIC command 33 from the main storage device and transmits the READ/WRITE command 34 to the disc control unit 28.
The I/O channel 21 waits for an emulation of the READ/WRITE command 34 including a conversion from a CKD format into an FBA format to be completed by the disc control unit 28.
The disc control unit 28 carries out the emulation of the READ/WRITE command 34, reading out or writing data from or into the disk unit 26. As the operation to read out or write data is completed, the disc control unit 28 informs the I/O channel 21 of the completion of the read/write operation. Notified by the disc control unit 28 of the completion of the read/write operation, the I/O channel 21 verifies that there is no more CCW command. Then, the I/O channel 21 informs the CPU 22 that the requested operation of the I/O function has been completed and ends the operation of the I/o function.
In the prior art described above, a disk unit is embedded in an information processing apparatus but sharing of the disk unit embedded in an information processing apparatus with another information processing apparatus is not taken into-consideration. Thus, if a plurality of other information processing apparatuses connected to the information processing apparatus including the embedded disk unit make accesses to the disk unit, the information processing apparatus having the embedded disk unit emulates the accesses, increasing the burden of an emulation mechanism employed in the apparatus having the disk unit.
In addition, in a system configuration wherein a plurality of information processing apparatuses each having a cache used in conjunction with an embedded disk unit employed in one of the information processing apparatuses as an internal auxiliary storage device are connected to an information processing apparatus having the embedded disk unit, the information processing apparatus having the embedded disk unit or one of the information processing apparatuses connected to the information processing apparatus having the embedded disk unit may update a piece of data stored in the embedded disk unit. In this case, since the other information processing apparatuses connected to the information processing apparatus having the embedded disk unit are not aware of the fact that the piece of data has been updated, in the cache for an internal auxiliary storage device in each of the other information processing apparatuses, a copy of the piece of data prior to the updating becomes obsolete but remains therein as it is. Thus, the copy of the piece of data prior to the updating stored in the cache no longer matches the updated piece of data stored in the embedded disk unit. As a result, there is raised a problem that a normal operation can not be assured due to the difference between the updated data stored in the embedded disk unit and a copy of the data stored in a cache.
It is thus an object of the present invention addressing the problem of the prior art described above to provide an input/output control system that allows an embedded disk unit of an information processing apparatus to be accessed by another information processing apparatus and is capable of assuring a normal operation.
In order to achieve the object described above, according to an aspect of the present invention, there is provided an input/output control system comprising a first information processing apparatus including a central processing unit, a main storage device and an internal auxiliary storage device, and one or a plurality of second information processing apparatuses each including a central processing unit, a main storage device and a communication unit for communicating with another information processing apparatus wherein any of said second information processing apparatuses makes an access to said internal auxiliary storage device of said first information processing apparatus,
said first and second information processing apparatuses each comprising an auxiliary-storage-device control unit for controlling operations to read out and write information from and into said internal auxiliary storage device wherein said auxiliary-storage-device control unit of any of said second information processing apparatuses:
emulates an auxiliary storage format controlled by one command or a plurality of commands forming a series of commands stored in said main storage device employed by said secondary information processing apparatus employing said auxiliary-storage-device control unit in an auxiliary storage format executed by said auxiliary-storage-device control unit employed in said first information processing unit in order to make an access to said internal auxiliary storage device; and
transmits a result of emulation to said first information processing apparatus by way of said communication unit employed by said secondary information processing apparatus employing said auxiliary-storage-device control unit.
In order to achieve the object described above, according to another aspect of the present invention, said first and second information processing apparatuses each have a cache for an internal auxiliary storage device and, when any of said first and second information processing apparatuses makes a request for an operation to update a piece of data stored in said internal auxiliary storage device or stored in said cache in said first information processing apparatus, said information processing apparatuses other than said information processing apparatus making said request are informed of said operation to update a piece of data or replacement data used for updating said piece of data.
In order to achieve the object described above, according to a further aspect of the present invention, communications between said first information processing apparatus and said second information processing apparatuses are divided into 2 types of communication with different protocols, namely, a communication to exchange control data for controlling said caches for said internal auxiliary storage device employed in said first information processing apparatus and a communication to read out and write data from and into said internal auxiliary storage device.
In order to achieve the object described above, according to a still further aspect of the present invention, said first information processing apparatus further has a table including:
a field for declaring an exclusive use of said internal auxiliary storage device employed in said first information processing apparatus;
a field for storing information indicating which of said information processing apparatuses is currently using said internal auxiliary storage device; and
validity flags indicating whether or not contents of said fields are valid,
wherein information stored in said table is used for identifying said information processing apparatuses to be informed of an operation to update a piece of data stored in said internal auxiliary storage device or stored in said cache in said first information processing apparatus or informed of replacement data used for updating said piece of data.